home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / tarmail / tarmail.kit < prev    next >
Text File  |  1994-08-01  |  15KB  |  358 lines

  1.  
  2. This file contains tarmail -- a utility for sending files through e-mail.
  3. This is a convenient way to send files and/or entire directories of files.
  4. The files can be either text or binaries.
  5.  
  6. To use tarmail, it must be installed on both the sending and receiving
  7. machines.  To install tarmail on your local machine, use this file, or
  8. simply execute the "install.tarmail" script.  To give tarmail to someone
  9. else so that they may install it, just send them this entire file, without
  10. modification.
  11.  
  12. Included, you'll find "atob.c" and a tarmail-format file which contains:
  13.  
  14.     atob.c
  15.     btoa.c
  16.     tarmail
  17.     untarmail
  18.     viewtarmail.
  19.  
  20. All of these files are public domain (but please don't remove the credits).
  21. These will let you atob/btoa and tarmail/untarmail/viewtarmail.
  22.  
  23.  
  24. When received, do the following to install tarmail.
  25.  
  26. 1.  Save this entire message in a file, call it (say) "tarmail.kit".
  27.  
  28. 2.  Extract the text between the pair of ============= bars into the
  29.     file "atob.c", and compile it with the following command:
  30.  
  31.         cc atob.c -o atob
  32.  
  33. 3.  Type the command:
  34.  
  35.     cat tarmail.kit | atob | uncompress | tar xovf -
  36.  
  37.     and the rest of the files will appear. It is NOT necessary to edit
  38.     the "tarmail.kit" file to remove headers, as "atob" will automatically
  39.     find the beginning of the btoa'd data.
  40.  
  41. 4.  Compile the "btoa.c" file with the following command:
  42.  
  43.         cc btoa.c -o btoa
  44.  
  45. 5.  Copy the following files into your /usr/local/bin directory
  46.     (or to some other directory in your path):
  47.  
  48.         atob
  49.         btoa
  50.         tarmail
  51.         untarmail
  52.         viewtarmail.
  53.  
  54. 6.  To send files, use:
  55.  
  56.         tarmail [-s subject] person files ...
  57.  
  58.             Will send the listed files and/or directories to the
  59.             specified person, with an optional subject heading.
  60.  
  61. 7.  To read or preview files, save the received message into a file,
  62.     and use:
  63.  
  64.         untarmail file, or
  65.         untarmail -
  66.  
  67.             Will extract the enclosed files/directories from a file
  68.             containing the received mail message.  Note that the headers
  69.             need not be removed from the mail message -- untarmail
  70.             will automatically extract the proper data.  As with tar,
  71.             the files/directories will be placed in the current working
  72.             directory, unless the names are absolute paths.  The "-"
  73.             option can be used to read a list from standard input
  74.             (typically used with a pipe).
  75.  
  76.         viewtarmail file, or
  77.         viewtarmail -
  78.  
  79.             Will print a listing of the enclosed files/directories
  80.             from a file containing the received mail message.  The
  81.             "-" option can be used to read a list from standard input.
  82.  
  83.  
  84.  NOTE:  You may need to edit the "tarmail" script a bit to get it to
  85.         work properly with your local mailer -- as written, it assumes
  86.         a Berkeley "Mail" that supports the "-s subject" option and
  87.         the "~:" subcommand (so you can suppress adding tarmail'd
  88.         files to your mail filecopy). If all else fails, just use
  89.         this for "tarmail":
  90.  
  91.             #!/bin/sh
  92.             who="$1"; shift
  93.             tar cvf - $* | compress | btoa | mail $who
  94.  
  95.  
  96. ============ atob.c ==========================================================
  97. /* atob: version 4.0
  98.  * stream filter to change printable ascii from "btoa" back into 8 bit bytes
  99.  * if bad chars, or Csums do not match: exit(1) [and NO output]
  100.  *
  101.  *  Paul Rutter        Joe Orost
  102.  *  philabs!per        petsd!joe
  103.  *
  104.  *  900308 rpw3        Modified for slightly more user-friendly usage message
  105.  */
  106.  
  107. #include <stdio.h>
  108.  
  109. #define reg register
  110.  
  111. #define streq(s0, s1)  strcmp(s0, s1) == 0
  112.  
  113. #define times85(x)    ((((((x<<2)+x)<<2)+x)<<2)+x)
  114.  
  115. long int Ceor = 0;
  116. long int Csum = 0;
  117. long int Crot = 0;
  118. long int word = 0;
  119. long int bcount = 0;
  120.  
  121. fatal() {
  122.   fprintf(stderr, "bad format or Csum to atob\n");
  123.   exit(1);
  124. }
  125.  
  126. #define DE(c) ((c) - '!')
  127.  
  128. decode(c) 
  129.   reg c;
  130. {
  131.   if (c == 'z') {
  132.     if (bcount != 0) {
  133.       fatal();
  134.     } else {
  135.       byteout(0);
  136.       byteout(0);
  137.       byteout(0);
  138.       byteout(0);
  139.     }
  140.   } else if ((c >= '!') && (c < ('!' + 85))) {
  141.     if (bcount == 0) {
  142.       word = DE(c);
  143.       ++bcount;
  144.     } else if (bcount < 4) {
  145.       word = times85(word);
  146.       word += DE(c);
  147.       ++bcount;
  148.     } else {
  149.       word = times85(word) + DE(c);
  150.       byteout((int)((word >> 24) & 255));
  151.       byteout((int)((word >> 16) & 255));
  152.       byteout((int)((word >> 8) & 255));
  153.       byteout((int)(word & 255));
  154.       word = 0;
  155.       bcount = 0;
  156.     }
  157.   } else {
  158.     fatal();
  159.   }
  160. }
  161.  
  162. FILE *tmp_file;
  163.  
  164. byteout(c) 
  165.   reg c;
  166. {
  167.   Ceor ^= c;
  168.   Csum += c;
  169.   Csum += 1;
  170.   if ((Crot & 0x80000000)) {
  171.     Crot <<= 1;
  172.     Crot += 1;
  173.   } else {
  174.     Crot <<= 1;
  175.   }
  176.   Crot += c;
  177.   putc(c, tmp_file);
  178. }
  179.  
  180. main(argc, argv) 
  181.   char **argv;
  182. {
  183.   reg c;
  184.   reg long int i;
  185.   char tmp_name[100];
  186.   char buf[100];
  187.   long int n1, n2, oeor, osum, orot;
  188.  
  189.   if (argc != 1) {
  190.     fprintf(stderr,"%s: no args allowed, please use pipes or re-direction\n", argv[0]);
  191.     exit(2);
  192.   }
  193.   sprintf(tmp_name, "/usr/tmp/atob.%x", getpid());
  194.   tmp_file = fopen(tmp_name, "w+");
  195.   if (tmp_file == NULL) {
  196.     fatal();
  197.   }
  198.   unlink(tmp_name);    /* Make file disappear */
  199.   /*search for header line*/
  200.   for (;;) {
  201.     if (fgets(buf, sizeof buf, stdin) == NULL) {
  202.       fatal();
  203.     }
  204.     if (streq(buf, "xbtoa Begin\n")) {
  205.       break;
  206.     }
  207.   }
  208.  
  209.   while ((c = getchar()) != EOF) {
  210.     if (c == '\n') {
  211.       continue;
  212.     } else if (c == 'x') {
  213.       break;
  214.     } else {
  215.       decode(c);
  216.     }
  217.   }
  218.   if(scanf("btoa End N %ld %lx E %lx S %lx R %lx\n",
  219.          &n1, &n2, &oeor, &osum, &orot) != 5) {
  220.     fatal();
  221.   }
  222.   if ((n1 != n2) || (oeor != Ceor) || (osum != Csum) || (orot != Crot)) {
  223.     fatal();
  224.   } else {
  225.     /*copy OK tmp file to stdout*/;
  226.     fseek(tmp_file, 0L, 0);
  227.     for (i = n1; --i >= 0;) {
  228.       putchar(getc(tmp_file));
  229.     }
  230.   }
  231.   exit(0);
  232. }
  233.  
  234. ============ tarmail.TZB =====================================================
  235. xbtoa Begin
  236. +.\L%ke%Mf@LRd>#SS[maKVAULCb\&6jTN]%2q&g!2s#[7LU+P.oqTP,G[km2.54\#_GOd)Du>9KJ>
  237. jT`>LHi:>EstVpCt?BA==r[&?He8<YN/b-\.sVbLNs!"j1C%M3g+aI/7SNLQ4d?ml"0FUfEPA\teT@
  238. 3uF&3a+fT">L*T(cQ*MJ:JjlN>joe`3@W.B$Qc#C"URRZW;_rJRLrs&//[")A%A\ig?6jcK%*,kDYt
  239. #`m!KtAE_b'ao]L#3?X(#WRGGh#Vp<`\9[,F9u+>AbM_WD,";nN>OJA3o#,Yk3cL[7)*PPTPV@74J<
  240. 9=AY+,V$Pe>E@A?jhQHdT>44=:7OXl/*cR6r<SRdnnL<m1Ss-B-2i^i@C'i&1$/)5X0,7VZPJ#/V?r
  241. Ui?SWFKgl4#]75O<ul?qeUeZeQ/Mob(4s>1(jTOl`Z0&m=N5#-.%n?]IZ;05*G"BQK38Joi;so]a>c
  242. MHD7Q>V>%`A9A/]&o,p\V%l"(W6EM+uj%'@c_>X_SOd0:Rk@enrJ4nJ`+=>N9XUg.W@Yp'Z8TR]N>$
  243. (t\hSTsY>K+'310W1LiqO%DXIEj8d)dXhY=_qY/BI4-L."E^PR/IcSChl0Pl(j2?3lGL!Be!hkQ$RV
  244. oCT305BrR;UnO=ObMQ21E!JS>o$HMNg(0c/tAqlRmj=#d'XZ;+S>HdkbR=hfm-<G(bM8=lb,,>ca7D
  245. ]XL>bld1=[nO"&Q&Z<@iT,o\KJ6Z_?hBUOFiEO\sakSa6ea0?'4DU;/%/7$UU9IlJX?$qMN3E$=^LP
  246. X(NS<Rd7+(d0eO.ej9d3+!?fa7Y_+N>`fkr2>S:"0N<GJa!&2i#K\<b$o2';Z[Amu.?@a)bS>8iF2f
  247. 0bFg/VER*"d3-CE0K(a/=pn'E2Y!!8Z>7,@B)#:KFaX:A$Snu6Z*$A,e[i[iLb.p0KhfGJDJERbD#W
  248. \b.qT*teQ?IR<aRrQm4nk!p^D'mosMHphIB)dQCcQ!bF2lcn`l/it)U7c_Z?]Q/9a.L111('GG?t\@
  249. \p],mSE._Q*$nt+%Gig3RbkYV;9?qeG+N.[*EMo_K[n&0]DJ/.)cRq6g\<!filFk793ZXgdSU1gGA)
  250. =\nEYfe^R:u&XG0a>n,dFJ]cJ39G$5em.'1J!Oa-U/?2-?X],X4&qp6Lj%)#<S\7&-u3@4)!M_j''J
  251. 'gQE6^e?JMg!;k$)q1>a%lid6"T'E$`Pi$\8`KgQ`Pt0h*3aVG6_%I6fYIu6:j`&Vi!09bOm(/#%-2
  252. 0JqV]^a\!3RqjR\@<:_3gkS7)i.l/<NH:p5c+V2&SYJIq41^P^g)KhAWm#Ze@31sG<BYaOGdgn9rgC
  253. uHTmke\'91RU:kiJ[XHj0#=o.6#2<2/\LACW>t73FZ``TRu(89Z'4>,->:]Mjm8]d&XqZMFUhnQ3^)
  254. :LTBcr.R(5!XUoW1"gnOEK.5$!3!P-p]Z2o?6;%[tKU+@Fbq%6U5nJHXLFn1!GM-.;T>\4>3>@Vd^X
  255. =;Bh,LHlE(CHlR,JFIjan-'6'WS6$Zsf^#$eQ0Msf&PR2Y]=2kWF&>qFPI<_t@One%<Kr0NhA:^&1"
  256. 6'0s('uaih&QhKC%;WI#qf[8&*@*m"+D=(YetA@ChM+U1JAZ_qW.Gjd6n05B@9nru)`4?Z=At/V6$L
  257. j%fUuUW4$Y0*ph0kCc2h?cbYfAOcm[A!+f#VUQ=#XS0QNU\UZn:Npai9uKCNqRAZ4$KbtorR4Q[)]!
  258. .b^JkEf.K&9D;Gb<E8!1Ds3R%dFp*^\hXiARa&T+95paSmV\\*Xl`_42J9.AjIYf`GTRl6Q$B32P9L
  259. OX?sf,=co`626`?mA\CeUjAgr=d1h:][*ffZnghaG"p@@3&I=m,JeG:223,WX@N3Jpa\IDmP*H)\;o
  260. o*bM8TO7C^k(>BKA0eX0d(%/Z=[38Eb2W/aAj?;ti7O2eLT6EBF^Qps:\ChNh$Bd4K96n-/mpZ<;#U
  261. DJq7Sgsp03HgB1Q#[](s=2Ei^:KW3R^;Q=Vc@nb</#_+Ed%N55':a\h%1JVshVD2=?\uU9!n5\O_up
  262. Nr0\sonY%gs^dP.-;4%W.^)G?JIJ:(6X=6$Bn)Q[\=X'U4T37g%=r4;/HISoE:f-]I\au-q*9oE:k3
  263. o.HglTfm3S:CXP;8Ek\"bm11@MR'ga$R5?PDq+!/urL,7[CBPXU&UtBY$0\f!IqBXU/=O)qLJ"[2+F
  264. uCbN5tT@k!A\HTfeHcs1]mOu(R*c>tgF^.ThQak6s;[8@%Z.QL$H\o(2Fl..D&7g!sE9OH(^Dj9D^0
  265. nV84YQ],WF#:iah82D>iXVL"8^aG;*PLW6(gR/8ghP((bnTP5%9\;P[l"ZUO`kb!0WY\,UPIL!N'Kp
  266. ".`QjeZ]7.:l7U*UW!#[\B_LbGKgeK7f"T;fh,>[6A)LA#H)=aZZi";R_,A/1LfPVlYMcQgtXY=;D$
  267. +$dSLrcIH`aBP)D\M6Q7bujUEOGfc5UB=?<)U/UCQP?cW4>dr=DA;Q\,Kf75<tkbgn/nOo$k-V:\lj
  268. UH#CN%#QBWnbf`"tbY>WDL!?EJnK`IJF8grGig:_$N9A!>Cu*i*+N^*!LA1pq-1YDS60]$:@?N&t1D
  269. -b':rb*+F.'ojVf"<:]$B;pMu>E.[AF5[YIN"(,p:n;'`,Ul/sZ$06s]S9HA=F7G500%9BeVZtsKkA
  270. +hR:b*@CB.>%6:3O(p*Vb;#4E`Un*RFnDW3XH,DO1l^m"6CcT]ZYJOFe./i.N=[`SF5)MH77HQ)a/I
  271. J_l,K5ggbl^"f;;BX#!^qJleTfSV/el&_`@L7ZD/h+2X,5t._+mak"No@ae=fG2;kFkM3r-_S?`)@b
  272. 4R/9J*Va7qn(;]G@6hVA]ON*^TcR'$!r8tPApV9j(JZ\6.H!hTl?m_\E,R,.6-!<I]J"!@UV-ijN=:
  273. g4e9?3j,Y67'd9_/h5a%u"[b,s"n\*nR.!^dq!RE[*T-1d'2$58#5Unh!]O77jd19d0i!!\X9_"BYX
  274. -73Db-5^;O7"#t6JUp;CU"rjT5JY"&N,=j7+LdA>`7\2==D0%k%1+F\c.Fus-1!"rfK.?@H,RV%.7G
  275. n=@;CA"k<TrF!6h;o;+F>M+0-F(UpX;OGeNa'i1WVF=:fN,jPX&6g7jq2#7KW`(1dMbmAg1)=H?)>"
  276. ;*nD&6>cC!AuJ!<`+!I@Khdnc?"62s1GaHs#BWL@#kNW]2?Ojd2_h'd@T.p/F"ntQ0f?Iq-q$7P3&6
  277. ]XKMt9j'A#*<GVIU12&:j60lqI)_M3;H1&%t%1Lu,I@kjf'4*RV[,ssB\1_i@]HlOpIb'+e2Oa@U:#
  278. 6OQ:ScL?HE<\mq)QPVjEc[+Mno1Wc4a*22l@K)-i]1tP+4E1aebCu$2AI^^<&V^QWSra1Ko@-n&^/6
  279. TB$rWa(l]q_NU3$lfVfnHpfAj%M'MVE_/kAbcnF\:Nn!9Q:idUO1ID0i&q*[[AcdsK,)uT3OSu[NoX
  280. H[MfJiW9NXTW]cngbZ`Ae(T0DoLG%_3K4'9S50OmNuC]2Odr=d!7cO=267pkXnHfo1o%-?-8R+Baaj
  281. W&JX<?o#T^kYa)eFB'e[(P(_*IcuAb'.RVB";GO#(oW!('pK.S<c/J+(5%hZK8P^<,<B@063K\L<(&
  282. R06q[Z::Gam%JqIs67iTu3?hmo1&nSOo8AUH[/?h[)oQZI>#*P3iDbs#9E(QJ90u;I5T<rl@1eMIY8
  283. uL_SS@+]coL`Rk@'dd\EsZ>?F]_#]H&bHJ/b9^6fR!oo<QS2E0@XB-o3bks>"Ub-6Wk".@?aab<)KJ
  284. .J!cJ8onjO7RXK<7/;?r-Oa))s(N]Wn?f?(?7i8Zh#',5=HGQ,j[@@_<)9.JP^&hfnP*n(k=Na!52^
  285. V\lULQE@@m3prO6Hjfe/BL/SuK,01K.\q8Nn=APs'd%<,%Wh#`+<s5$WA]?Kjs2&=-%(6tE(p9#O>6
  286. .7I'tQBnHgCj@^$";l0pI(WLR%j;QE!#(g`&Kh*hT%7U'nI[%_&JB0f1E[>h:ho$("!6E9(Aaa;0l+
  287. -c'Xe4@2L;,XR\L3U"bHCO:B1Pt0EjUY!^^i-#quG*L)9gL+F3H+YV?B.cm3C((qNQK$aLnT8#.NjG
  288. ^$E&8!!jIZ52nO!b+E0-X_*)0H4Jo#(&cD6`Nq"6$mAjU!-S[K>fPh5QWY_)1J7Z,1$C4:b<!HVJL!
  289. >4clQs+9IN\#O5_%FKh^'qP]O^,*gQ>RKN[;J>@T#"+4Jr$*[KEO;fR?Iq<SD4iD`h!N<W?VJY#jHa
  290. .gT(JSu/!jl-QT/ms`O[,,a,%CU+/)mFO\u.X*W224m8@faZ+`7<82\,KqQ"2'Y6NT8W(6bFHIp"4h
  291. -N_L>);aKp,9fJbKbcHG8UBntEDQnQYp/,K+]REeQU`KHH@=M0FkL1^R%tPIMH5r('sfA7-ig9Al3B
  292. ?MN2@I]Y0o13g1V*k(Nr%FHbcCSi1iOu"asbslB8&1+;qg,H"b#<=uI7RFW=YZ!"$GFE2jqYR\thmV
  293. NN+)^RBguOW,JU9ic9SU?<E(kH\]>![=9;7=(b$RNh4NUil1&;$n+<C)]W_V.>[a7EVH60a1o&V@9j
  294. bAI8NP.O-HZW$cPiE[hm'.^+#AWPQ`TDW%FC.]?PZX<`n+OBS`(l_kYcKY2'!dAj0YbGh'?YX@#lV$
  295. aXE.^,fiH?I$'VW=cGYnaNY6aKss,TBB![&]Il!;Ur>HE*p^lDWa#XEriCb6h5cpT23/Z^tTCP_?/E
  296. VlfO4Xc25@JSB,`MPN>3Qfjg?($BK$3_=ghIIS5Ro_K>p,ZX[*H&^L\$Lk5R].O.XYb"]aW04B8bHM
  297. HaYnA"O'q6fuJ?^#>E*q%u[_Z11"p,uAZ6h*3.8'_XgTpV^Z_<i$1ckq#.j?sBP[Wkn3m)4TWhH)oB
  298. cS+dT-cK3_.kknUA\Mp)-R+sJ>"`K3\G`n2_(RYH36%i^_C%i(<dKBqkHG<UdFPT>Df4HUnjYbV+g3
  299. ^>FKe7$`7tfV@GqiAt#P;ll'b<,)nMb;;)(PDuuc-!-bFZR9D$Hi2Kf:,AWruF/o@a_RH<*[o]ggor
  300. B+\A?/>h+=H-dJK(L=+N:i/\TBpDKB3tsqQ\H=YoLA"[P:Ar]<HP,YRfK`)GICOWrUSFX'OM]Pl%MI
  301. /$,.SXH/^LSnfh#3]EPh_tdK<Vos(Z]<0lS]&9S'0-\"4B<LG:)XH+DPf110b\V,mYJH.#^Il/VB"Z
  302. 4>^*g.tDU9QO]3!;d!XaiRA&-)%4L*LbYp>F9ABYm<@E'B.^>iG'q..4JTsBAVW-"]H0?^g\CI9uV+
  303. S,C\G+]t%d(=+5_690>Wj]Y^$DJd1TdMVu.7(a!EM>?&!sr3E)2]"89[10R_)"-glMSrs*7(n&_-.2
  304. Q+Y9uolD+r2Zt5?+,b-)R].QmKG[6cT<'-sYS$bA+WB]196L5UC:rKFT.7jB9ah,JD!c647c$ECp;L
  305. Hkk//$96#18s_=o>d69ZNB4a'Xe)$-ZU`]Wo!5^$1[u]X=tc!6]72bAkbF/+'BLOiNh.WLKB[apQ4`
  306. 433dmaJO<dLcfRTlP?SV#)iu&O%c^`43?b;DRo)9R!cmERN%_)]_AF-Ac^'PMPd-gYQK6p"m`f,bKA
  307. 60b1!uOen_PD>Kbc*`Z>N%+U\>rlcWU]^?N8Za.0fa4;c7hZd091Nr@Ul*SHT=fp#dqQ@7GRS_9IFf
  308. a0BcV5p6@,9p)58;*4I\-+A"Ea$K"+N^pjbT];n&M6KFT"%rD3#$oO#WUt`K^*T2^<0MN8;R=G0OH\
  309. GTGV,9;M0LqS!Z"c)`C#R<AQ/cS(/b>#$0QK1YoZq1>.*3+u*KSoeT-[?Uncj7cQ-oA"W-T3WFoj\!
  310. `K]_q]:MN4Q\`K_'fAh3RNs2D(%ub\/qr'01dq4cJtuoo2!+SWrr@=9!\-OHVW%!g&]-=4ln%b7ct1
  311. ,<DW!4K*=`aCF$BIZLHo41<&c`tR:b*TGo]!jk<W%b0Glak[^B4O.G!*_tX;R#!,@LnVLk44Ap]k%:
  312. tg53@J]l8**3"@)I`1A'Tp$4;J1#Qjum5S\j(I<[1FKSK?ZKc'H9@46jVUJYs.j]/HM=q52lSV@u'L
  313. 2f1W(Xt]#1c%E86[2X!K5oWQd$9%O6`W%3@YmNaM4b2P0P<t63+tam!pJ:t->4)_@t[63e`^aI&Sam
  314. J7ckWe@n3nW8%eAbI.W_T'UKS6g=M0P_fD*&j@IW18aT,AQF%H\WRQY?DP:#6MTM7'p6\M68mMEi[9
  315. ]2<DG-jt9CnBBg$;:P!)16t9ZD`Zb1'#-1m$oI9up4,rj>27/cseW9j?7'dlq1mF\].%gaqS_IN`A]
  316. 6r2AHMndJ3*W8bc,#DtS)qBdAo=e&ij\Vlf([k<-ebNMfPu4`-0HF_n+15#k78dNKn0s&6DST01<)2
  317. GE=6/f02YDH1O]*CA;q\4B6+*+Ljd@5l=553rbSj4`<`Q#B<N0[Z>IBn8<8:n^@BX6C(m\3<7:L*^o
  318. 5QWheO/mg5DjK&@]m7'"1En9jp$MS^>-8$hMGAqL1B83=dqi3SHZeq(0X-r>"b1GW3tlieRZDuAYUm
  319. =/7rH"N+IALAmFI@a2L8U2J-`%B!`0EC%g]5o3>o-j$GC3F&lptG)H:;B=RIOi\g"PG3ss+-AG"GK9
  320. U'>V&T$V!qjOlRZ_%M.0h9J?dg'[7uo70*M8*rS#"/6p"Anl"^qMj@7!?QH$*P/V-u[9@7Oh_+'.us
  321. !V?H%LdSAg7:5UVD\t,C@mSZ;2>1-K+.c@@p#V#85_er#7V&9:A7!#]9#bDc1\Q,J;`j6!-u`b-[J!
  322. fo>[@'s?oJ")mq$+Np1W#Bc.-@Z%mFpOqgP^MeqID`-2?>^)rP<&Itm`!$JjCG1/MZ<bBSScMe;N[^
  323. A@s6,0cqBCcqgJA-?_gBt2hS"(7jXe5QR;E55uc%Idu1VU`14#j;rS=fiiu-nkfW"CD6KJBd'k2IJg
  324. %kQbWCVVK%oR1&a_00gIj6Z<s(FnuKu7QG=TDM--JNGUX<jlY?o)bNR7g<I77;BS6]N/2fO+PK4ddl
  325. 3Sdhc'i2dg!*R&"Hq.,2oo.NUmr+%`FJhc00<SZ<KX"4,sfP!?_UXLn#AKEfPdoOb5';"fRsVcuiYi
  326. baCIn`9&TlBVfbY:=&_r?QnV]Q;LY(oE-KK4",jJSAD+u(#FJjTfS#Xk?o=8ejHsm\.K<[a#*:_Yu>
  327. hkNci,Ig4;="-at<AaFi9A4*F+&["lR7*t2J(\.:4or1G(G,BsKTi=S#*-eL,Ei2!_&%ka>6Q"OuB*
  328. mN_k37I&a;N-V-KHJZ!DGZDZ!<K8l0/Q&K!so"^f@j,,$MWa*hP2-@%sHkVMkT\UTC?oL164#-',X&
  329. B%74IM(BdA(Tg!Ljk$T9'+W.^"r;&T,!'Q:5)=S`4K_[&.#9lI<*s^bR-:EQt&FsIqeK5?r+Rm^2+B
  330. 9nC7C\0R1Eus_F!<k!`CBn7gpSQtK`glU,Z-3KV$_<q16<1%5TNB"FUHG+j\F/r`,_7i[,IYjZ@Wu/
  331. <f.VQYsIoi)q:PE`XYl[HGLYf$R#X7Lld;]D+R:_/>4E2J-\]^LiQG^$42eR=$Y>gCg%remX[b;0Lp
  332. l?>Q\DU>"HoS\MHbUbbA`8MsLT8=Wt6'2qT)[cpNbE%oG@cL5;#?+@6fs.)HuKck_9/?C]\g7Hr%d,
  333. R"a9<lQD*E_-<;)9"nnm8dJ>djQd3\;?rt-k].7V%?.N;'`*7?VqUM%4o@DZfiB$M-GWPWfh"^%D>:
  334. Br1[+:+bii?U(l/B,`![VK]B]L3mpM)M'DVfiFnA3&[;.MUN+8(,MXZ,aAHkl*5<(/i<=p'*8aV5e4
  335. .L+bn6lq&s@dlMOR06W$5A7QmCVndRhkX#:Vc98!S1]DA#@[8L'':M9#<:2GfQa>`[7L-?2PGoH!Cq
  336. 7uBn3;)ikIrO<^>UI6;eoas>r,6HO=^!T+):HZia1*N<t?Q.-bqM?7]bC(-([$7"W98#p@-1fff$F>
  337. m$j,iS&46.mq-s#p%$IjVF+pmN@)7g$[QKf$7nfr,<\QgI[Vas^V?4nHJln?&`HZc:pP:*&HYX+M8O
  338. uATkX<(p3FhWkq*64LgR7)SG'.QDH1N>M/Um5U,at%lj%lHA8e-GRr#&g5T+sAin7PC0;PT(u*P>ZC
  339. ,351g_S/fjol3t[(/mOu&TUb44EuI<ja^\bq2,KjDA9MF.2!4&e)!,C5Qs\B2-Kn#[W$ed(>h%5;Tl
  340. %_6oK`ltH(Q(>M;1^Kc9L\VYf%^je6"J&AVi0/`kBHd4I^u/Oe9pS82Ctt&ZjZ?Wdt'V7#;$Y<>%P^
  341. 8gn*,/4J4p()6r")6KD7-I=.\b@SfKk*_=2B->DNLp3SLc_-Me)IZ8HTU@L4jeYon$\Jm@$u;Q9[Ip
  342. C"(Po"QdVNaYWQPI`r`#Pb'BBd'.B3UbWT'5>Wag4qLZ'fgTXU*:73bg0$EO]><CP+C(TdH?ZAM\n!
  343. %g+Lk13>?@mR55%4e/rXGkjT@oc0\&/mHAe^X!el@Nc.XBR-/7M`V?RO#4FQ)rO'/pNZ'I[@_\?D!1
  344. 7'JHkk`(V$u1K^]ZQ,*[9f#Aob)k1Dac'HJYm\S,)RZ-KBjU6tM1\<QK=OtK^436c:`NRT9W^mrPnl
  345. \F3=ur-!"WN8`dCPWC.U-@2JTemU8^s24/$*K>98,hf]9^!4%!1]jWCsp$[b><HJsT3\:ru@WaYtL^
  346. 94MZ4Z<pcl;?efU(TQ0jWbQAg9Z;]>)4/3NR(:@Jeh)^"[e(EUlslU0/g*#aV:8&&+`hD=$"U3A75c
  347. p'g:3SW-^+krXs!PCOp"9rR@VR'l)U6:YA.ZR]:!Vt$p_"M`A=&2d*uC2N+hoBOEEA\)u9>A8i*Xc2
  348. U]RYA<t_UAlR6:;(-%U&8WWrlsIBqIfV5(#0mVo9IONri!(a:)IP+qVaF"@1s13G:WhfN3EQ^=RNa;
  349. !=t+;[2B@iE9:H4SKrp7MjqVQ3e@K'KCkq[;9XQMq)A+c7'[9tt:*sQsJ=s]:@ZLnm_1jH%5Z-'']2
  350. ]<hDd"VEp<omk5S+%61REA<1j7?0a;V*p5*Mn@$TSt_2(7Q#C(mpU'fA4Q3ADlDe<li6@t%+_))>Dt
  351. l"i@+'6WGlg8-jX5ZbR./5orncE]@@A7d6bR2=+[^,8n+f6!n^lC$01NaXU!3Aa1gpEH1p"_f/VPdN
  352. ?7kPC()ap`_bchTHH8fCf9T@T2NA2=Ul4lqDW.lG'sSB1nSQG:f"#[Eu/!IYH3570phBa&:Ecn]9S9
  353. b?5?pDMU_>4ZfOC+4%G5JO&FH=?W4J-%G-)UT+p!iTd)XDkUFNWqcSVl0r:'k*>q1s"q1->,sZ@kd;
  354. &L/==.6DIUW6_RY)QAl'52E<:S`8"iY1in,K5UO(:'iVG>*qQB$d*X9t^Qn&:AE@Q^C,Ikn6s$8OCm
  355. ealP;1IP\Z\aG'I@<g1mK(4h'ps#VbTmYGAW9'[96Zi_5R,aSq7E=.F5Y0barG<FC/a(C<eI4
  356. xbtoa End N 7483 1d3b E 33 S d85f5 R 1fce3640
  357.  
  358.